<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Jetson Inference: OpenGL</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="NVLogo_2D.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Jetson Inference
   </div>
   <div id="projectbrief">DNN Vision Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__OpenGL.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">OpenGL<div class="ingroups"><a class="el" href="group__util.html">Utilities Library (jetson-utils)</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>OpenGL textures and display window (X11/GLX).  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classglBuffer.html">glBuffer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL buffer with CUDA interoperability.  <a href="classglBuffer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classglCamera.html">glCamera</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL perspective camera supporting Look-At, Yaw/Pitch/Roll, and Ortho modes.  <a href="classglCamera.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classglDisplay.html">glDisplay</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL display window and image/video renderer with CUDA interoperability.  <a href="classglDisplay.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classglTexture.html">glTexture</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL texture with CUDA interoperability.  <a href="classglTexture.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classglWidget.html">glWidget</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL graphics widget for rendering moveable/resizable shapes.  <a href="classglWidget.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga0bd307cace43e530c0595a5f175bbee5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga0bd307cace43e530c0595a5f175bbee5">GL_VERTEX_BUFFER</a>&#160;&#160;&#160;GL_ARRAY_BUFFER</td></tr>
<tr class="memdesc:ga0bd307cace43e530c0595a5f175bbee5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for vertex buffers.  <a href="#ga0bd307cace43e530c0595a5f175bbee5">More...</a><br /></td></tr>
<tr class="separator:ga0bd307cace43e530c0595a5f175bbee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8030c5f4c6c173efeb78dbf732bd72c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gaa8030c5f4c6c173efeb78dbf732bd72c">GL_INDEX_BUFFER</a>&#160;&#160;&#160;GL_ELEMENT_ARRAY_BUFFER</td></tr>
<tr class="memdesc:gaa8030c5f4c6c173efeb78dbf732bd72c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for index buffers.  <a href="#gaa8030c5f4c6c173efeb78dbf732bd72c">More...</a><br /></td></tr>
<tr class="separator:gaa8030c5f4c6c173efeb78dbf732bd72c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35178b75efe97d52bb130b75e1ddd5f3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga35178b75efe97d52bb130b75e1ddd5f3">GL_MAP_CPU</a>&#160;&#160;&#160;0x1</td></tr>
<tr class="memdesc:ga35178b75efe97d52bb130b75e1ddd5f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map the buffer to CPU address space.  <a href="#ga35178b75efe97d52bb130b75e1ddd5f3">More...</a><br /></td></tr>
<tr class="separator:ga35178b75efe97d52bb130b75e1ddd5f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ca90a8f0970ac09dcd34cf9908cbeee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga3ca90a8f0970ac09dcd34cf9908cbeee">GL_MAP_CUDA</a>&#160;&#160;&#160;0x2</td></tr>
<tr class="memdesc:ga3ca90a8f0970ac09dcd34cf9908cbeee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map the buffer to CUDA address space.  <a href="#ga3ca90a8f0970ac09dcd34cf9908cbeee">More...</a><br /></td></tr>
<tr class="separator:ga3ca90a8f0970ac09dcd34cf9908cbeee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga83b36ae7f5be085cfb52c24a8def5457"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga83b36ae7f5be085cfb52c24a8def5457">GL_FROM_CPU</a>&#160;&#160;&#160;0x3</td></tr>
<tr class="memdesc:ga83b36ae7f5be085cfb52c24a8def5457"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the buffer from CPU to OpenGL.  <a href="#ga83b36ae7f5be085cfb52c24a8def5457">More...</a><br /></td></tr>
<tr class="separator:ga83b36ae7f5be085cfb52c24a8def5457"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaedd033c4196021ff338e5e123d7c193f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gaedd033c4196021ff338e5e123d7c193f">GL_FROM_CUDA</a>&#160;&#160;&#160;0x4</td></tr>
<tr class="memdesc:gaedd033c4196021ff338e5e123d7c193f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the buffer from CUDA to OpenGL.  <a href="#gaedd033c4196021ff338e5e123d7c193f">More...</a><br /></td></tr>
<tr class="separator:gaedd033c4196021ff338e5e123d7c193f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a91d7f7cdf8b17bbc503ef86e9de6a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga1a91d7f7cdf8b17bbc503ef86e9de6a6">GL_TO_CPU</a>&#160;&#160;&#160;0x5</td></tr>
<tr class="memdesc:ga1a91d7f7cdf8b17bbc503ef86e9de6a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the buffer to CPU from OpenGL.  <a href="#ga1a91d7f7cdf8b17bbc503ef86e9de6a6">More...</a><br /></td></tr>
<tr class="separator:ga1a91d7f7cdf8b17bbc503ef86e9de6a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72987ef9b0b241cddbdca6da7d71dadf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga72987ef9b0b241cddbdca6da7d71dadf">GL_TO_CUDA</a>&#160;&#160;&#160;0x6</td></tr>
<tr class="memdesc:ga72987ef9b0b241cddbdca6da7d71dadf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the buffer to CUDA from OpenGL.  <a href="#ga72987ef9b0b241cddbdca6da7d71dadf">More...</a><br /></td></tr>
<tr class="separator:ga72987ef9b0b241cddbdca6da7d71dadf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0eda41e13107c1422939c363e9596797"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga0eda41e13107c1422939c363e9596797">GL_WRITE_DISCARD</a>&#160;&#160;&#160;(<a class="el" href="group__OpenGL.html#gaa5fd429fd2b79f5936c1421afb205dcd">GL_READ_WRITE</a> + 0xff)</td></tr>
<tr class="memdesc:ga0eda41e13107c1422939c363e9596797"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map the buffer as write-only and discard previous contents.  <a href="#ga0eda41e13107c1422939c363e9596797">More...</a><br /></td></tr>
<tr class="separator:ga0eda41e13107c1422939c363e9596797"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab43997c5949dffce6674a7bb8a3059da"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gab43997c5949dffce6674a7bb8a3059da">GL_WRITE_ONLY</a>&#160;&#160;&#160;GL_WRITE_ONLY_ARB</td></tr>
<tr class="memdesc:gab43997c5949dffce6674a7bb8a3059da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map the buffer with write-only access.  <a href="#gab43997c5949dffce6674a7bb8a3059da">More...</a><br /></td></tr>
<tr class="separator:gab43997c5949dffce6674a7bb8a3059da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafe26dad29b9cb2620e815e5fecea71f9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gafe26dad29b9cb2620e815e5fecea71f9">GL_READ_ONLY</a>&#160;&#160;&#160;GL_READ_ONLY_ARB</td></tr>
<tr class="memdesc:gafe26dad29b9cb2620e815e5fecea71f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map the buffer with read-only access.  <a href="#gafe26dad29b9cb2620e815e5fecea71f9">More...</a><br /></td></tr>
<tr class="separator:gafe26dad29b9cb2620e815e5fecea71f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa5fd429fd2b79f5936c1421afb205dcd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gaa5fd429fd2b79f5936c1421afb205dcd">GL_READ_WRITE</a>&#160;&#160;&#160;GL_READ_WRITE_ARB</td></tr>
<tr class="memdesc:gaa5fd429fd2b79f5936c1421afb205dcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map the buffer with read/write access.  <a href="#gaa5fd429fd2b79f5936c1421afb205dcd">More...</a><br /></td></tr>
<tr class="separator:gaa5fd429fd2b79f5936c1421afb205dcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8386b89daf8ec3a1805554fd95b80a9e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga8386b89daf8ec3a1805554fd95b80a9e">KEY_PRESSED</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga8386b89daf8ec3a1805554fd95b80a9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define for KEY_STATE and KEY_RAW events when key is pressed.  <a href="#ga8386b89daf8ec3a1805554fd95b80a9e">More...</a><br /></td></tr>
<tr class="separator:ga8386b89daf8ec3a1805554fd95b80a9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gada3a4be515b3527c1691ce080655877f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gada3a4be515b3527c1691ce080655877f">KEY_RELEASED</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:gada3a4be515b3527c1691ce080655877f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define for KEY_STATE and KEY_RAW events when key is released.  <a href="#gada3a4be515b3527c1691ce080655877f">More...</a><br /></td></tr>
<tr class="separator:gada3a4be515b3527c1691ce080655877f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b6ad02991ecad1673dab379a9f58acd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga2b6ad02991ecad1673dab379a9f58acd">MOUSE_PRESSED</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga2b6ad02991ecad1673dab379a9f58acd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define for MOUSE_BUTTON event when button is pressed.  <a href="#ga2b6ad02991ecad1673dab379a9f58acd">More...</a><br /></td></tr>
<tr class="separator:ga2b6ad02991ecad1673dab379a9f58acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa430fb566e84a444e76ca05486dc882d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gaa430fb566e84a444e76ca05486dc882d">MOUSE_RELEASED</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:gaa430fb566e84a444e76ca05486dc882d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define for MOUSE_BUTTON event when button is released.  <a href="#gaa430fb566e84a444e76ca05486dc882d">More...</a><br /></td></tr>
<tr class="separator:gaa430fb566e84a444e76ca05486dc882d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga194f107d8c7d12bc83db00d024d5e513"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga194f107d8c7d12bc83db00d024d5e513">MOUSE_LEFT</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga194f107d8c7d12bc83db00d024d5e513"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define for the left mouse button number.  <a href="#ga194f107d8c7d12bc83db00d024d5e513">More...</a><br /></td></tr>
<tr class="separator:ga194f107d8c7d12bc83db00d024d5e513"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2f7a686becd5d10c3cf769a6a1da7989"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga2f7a686becd5d10c3cf769a6a1da7989">MOUSE_MIDDLE</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:ga2f7a686becd5d10c3cf769a6a1da7989"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define for the middle mouse button (or scroll wheel button)  <a href="#ga2f7a686becd5d10c3cf769a6a1da7989">More...</a><br /></td></tr>
<tr class="separator:ga2f7a686becd5d10c3cf769a6a1da7989"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46f1ed1152bf8bf7680873ad678b3651"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga46f1ed1152bf8bf7680873ad678b3651">MOUSE_RIGHT</a>&#160;&#160;&#160;3</td></tr>
<tr class="memdesc:ga46f1ed1152bf8bf7680873ad678b3651"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define for the right mouse button number.  <a href="#ga46f1ed1152bf8bf7680873ad678b3651">More...</a><br /></td></tr>
<tr class="separator:ga46f1ed1152bf8bf7680873ad678b3651"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5268fa4c5e397526716bac7b30f639ee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga5268fa4c5e397526716bac7b30f639ee">MOUSE_WHEEL_UP</a>&#160;&#160;&#160;4</td></tr>
<tr class="memdesc:ga5268fa4c5e397526716bac7b30f639ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define for the mouse wheel scroll up button number.  <a href="#ga5268fa4c5e397526716bac7b30f639ee">More...</a><br /></td></tr>
<tr class="separator:ga5268fa4c5e397526716bac7b30f639ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5a8cfef1d06f7b507fd2ecab7bf75ead"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga5a8cfef1d06f7b507fd2ecab7bf75ead">MOUSE_WHEEL_DOWN</a>&#160;&#160;&#160;5</td></tr>
<tr class="memdesc:ga5a8cfef1d06f7b507fd2ecab7bf75ead"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define for the mouse wheel scroll down button number.  <a href="#ga5a8cfef1d06f7b507fd2ecab7bf75ead">More...</a><br /></td></tr>
<tr class="separator:ga5a8cfef1d06f7b507fd2ecab7bf75ead"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae41a95ad5a27c61fb413ec178089a803"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gae41a95ad5a27c61fb413ec178089a803">GL_RGB32F</a>&#160;&#160;&#160;GL_RGB32F_ARB</td></tr>
<tr class="memdesc:gae41a95ad5a27c61fb413ec178089a803"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for GL_RGB32F.  <a href="#gae41a95ad5a27c61fb413ec178089a803">More...</a><br /></td></tr>
<tr class="separator:gae41a95ad5a27c61fb413ec178089a803"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace8155682f86789a9af13e7026df4615"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gace8155682f86789a9af13e7026df4615">GL_RGBA32F</a>&#160;&#160;&#160;GL_RGBA32F_ARB</td></tr>
<tr class="memdesc:gace8155682f86789a9af13e7026df4615"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for GL_RGBA32F.  <a href="#gace8155682f86789a9af13e7026df4615">More...</a><br /></td></tr>
<tr class="separator:gace8155682f86789a9af13e7026df4615"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe9ef8f3c57b226efaf58ab3059bceab"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gabe9ef8f3c57b226efaf58ab3059bceab">LOG_GL</a>&#160;&#160;&#160;&quot;[OpenGL] &quot;</td></tr>
<tr class="memdesc:gabe9ef8f3c57b226efaf58ab3059bceab"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL logging prefix.  <a href="#gabe9ef8f3c57b226efaf58ab3059bceab">More...</a><br /></td></tr>
<tr class="separator:gabe9ef8f3c57b226efaf58ab3059bceab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3b91dc56dd99fa3abbce89be15fef93"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gaf3b91dc56dd99fa3abbce89be15fef93">GL</a>(x)&#160;&#160;&#160;{ x; <a class="el" href="group__OpenGL.html#ga9c5211ebc6e2eee2b12288cd52c4236e">glCheckError</a>( #x, __FILE__, __LINE__ ); }</td></tr>
<tr class="memdesc:gaf3b91dc56dd99fa3abbce89be15fef93"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL error-checking macro.  <a href="#gaf3b91dc56dd99fa3abbce89be15fef93">More...</a><br /></td></tr>
<tr class="separator:gaf3b91dc56dd99fa3abbce89be15fef93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26503b7a548ff678a4dc5aa73de4c784"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga26503b7a548ff678a4dc5aa73de4c784">GL_VERIFY</a>(x)&#160;&#160;&#160;{ x; if(<a class="el" href="group__OpenGL.html#ga9c5211ebc6e2eee2b12288cd52c4236e">glCheckError</a>( #x, __FILE__, __LINE__ )) return false; }</td></tr>
<tr class="memdesc:ga26503b7a548ff678a4dc5aa73de4c784"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return false on OpenGL error.  <a href="#ga26503b7a548ff678a4dc5aa73de4c784">More...</a><br /></td></tr>
<tr class="separator:ga26503b7a548ff678a4dc5aa73de4c784"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae16e17292445d5654bb49896cdd49bcd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gae16e17292445d5654bb49896cdd49bcd">GL_VERIFYN</a>(x)&#160;&#160;&#160;{ x; if(<a class="el" href="group__OpenGL.html#ga9c5211ebc6e2eee2b12288cd52c4236e">glCheckError</a>( #x, __FILE__, __LINE__ )) return NULL; }</td></tr>
<tr class="memdesc:gae16e17292445d5654bb49896cdd49bcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL NULL on OpenGL error.  <a href="#gae16e17292445d5654bb49896cdd49bcd">More...</a><br /></td></tr>
<tr class="separator:gae16e17292445d5654bb49896cdd49bcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga99a7852633ed1a98e0f1918367355ec0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga99a7852633ed1a98e0f1918367355ec0">GL_CHECK</a>(msg)&#160;&#160;&#160;{ <a class="el" href="group__OpenGL.html#ga9c5211ebc6e2eee2b12288cd52c4236e">glCheckError</a>(msg, __FILE__, __LINE__); }</td></tr>
<tr class="memdesc:ga99a7852633ed1a98e0f1918367355ec0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print a message on OpenGL error.  <a href="#ga99a7852633ed1a98e0f1918367355ec0">More...</a><br /></td></tr>
<tr class="separator:ga99a7852633ed1a98e0f1918367355ec0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gacbcfc0668226b31d1becba25887ff47e"><td class="memItemLeft" align="right" valign="top">typedef bool(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gacbcfc0668226b31d1becba25887ff47e">glEventHandler</a>) (uint16_t event, int a, int b, void *user)</td></tr>
<tr class="memdesc:gacbcfc0668226b31d1becba25887ff47e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classEvent.html" title="Event object for signalling other threads. ">Event</a> message handler callback for recieving UI messages from a window.  <a href="#gacbcfc0668226b31d1becba25887ff47e">More...</a><br /></td></tr>
<tr class="separator:gacbcfc0668226b31d1becba25887ff47e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gadad47fc5cdbc7af41eee1991038749fe"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gadad47fc5cdbc7af41eee1991038749fe">glEventType</a> { <br />
&#160;&#160;<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749fea7513d383f97428a41f8b44594874d469">MOUSE_MOVE</a> = 0, 
<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749fea8de816dffb2b2835bd493047322de4d8">MOUSE_ABSOLUTE</a>, 
<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749fead81c1a06c50141d5a469d4513479c24c">MOUSE_BUTTON</a>, 
<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749fea387b8a2503db0238598215649168bed3">MOUSE_DRAG</a>, 
<br />
&#160;&#160;<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749fea477b36ffc584a4458ea59eb24c7ea4cb">MOUSE_WHEEL</a>, 
<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749feaa7990d29ca8911d1d65ebe318e3bfdad">KEY_STATE</a>, 
<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749feac72a03e9a29e852b03999c7a8a2076b5">KEY_MODIFIED</a>, 
<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749fea8f72d21c8a5a305ff69f576d6a799c08">KEY_CHAR</a>, 
<br />
&#160;&#160;<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749fea596bff109a8d5a26abf4e8d776903919">WIDGET_CREATED</a>, 
<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749fea1a95cd0d3e7b79901949c2aa3397c955">WIDGET_SELECTED</a>, 
<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749fea0ec18df1c78ce7428c5a828b29ec8c83">WIDGET_MOVED</a>, 
<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749fea833cc0c2132855c06b26ee0508f22116">WIDGET_RESIZED</a>, 
<br />
&#160;&#160;<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749feafb6f46ac831d8060d921687aba839a82">WINDOW_RESIZED</a>, 
<a class="el" href="group__OpenGL.html#ggadad47fc5cdbc7af41eee1991038749feaa2199f69612be7b5e44d25fab5dab570">WINDOW_CLOSED</a>
<br />
 }<tr class="memdesc:gadad47fc5cdbc7af41eee1991038749fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">User interface event message types.  <a href="group__OpenGL.html#gadad47fc5cdbc7af41eee1991038749fe">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:gadad47fc5cdbc7af41eee1991038749fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga6af68c26b9f5254ee676de8b6f332ad4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classglDisplay.html">glDisplay</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga6af68c26b9f5254ee676de8b6f332ad4">glGetDisplay</a> (uint32_t display=0)</td></tr>
<tr class="memdesc:ga6af68c26b9f5254ee676de8b6f332ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve a display window object.  <a href="#ga6af68c26b9f5254ee676de8b6f332ad4">More...</a><br /></td></tr>
<tr class="separator:ga6af68c26b9f5254ee676de8b6f332ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga80a5aa43c317714fe5bb41e1db6eb4c4"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga80a5aa43c317714fe5bb41e1db6eb4c4">glGetNumDisplays</a> ()</td></tr>
<tr class="memdesc:ga80a5aa43c317714fe5bb41e1db6eb4c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of created <a class="el" href="classglDisplay.html" title="OpenGL display window and image/video renderer with CUDA interoperability. ">glDisplay</a> windows.  <a href="#ga80a5aa43c317714fe5bb41e1db6eb4c4">More...</a><br /></td></tr>
<tr class="separator:ga80a5aa43c317714fe5bb41e1db6eb4c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa1e51833a1b003db2359ea965e501806"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gaa1e51833a1b003db2359ea965e501806">glCheckError</a> (const char *msg, const char *file, int line)</td></tr>
<tr class="memdesc:gaa1e51833a1b003db2359ea965e501806"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL error-checking messsage function.  <a href="#gaa1e51833a1b003db2359ea965e501806">More...</a><br /></td></tr>
<tr class="separator:gaa1e51833a1b003db2359ea965e501806"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c5211ebc6e2eee2b12288cd52c4236e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga9c5211ebc6e2eee2b12288cd52c4236e">glCheckError</a> (const char *msg)</td></tr>
<tr class="memdesc:ga9c5211ebc6e2eee2b12288cd52c4236e"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL error check + logging.  <a href="#ga9c5211ebc6e2eee2b12288cd52c4236e">More...</a><br /></td></tr>
<tr class="separator:ga9c5211ebc6e2eee2b12288cd52c4236e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae70530a98d9a14c84fffea7e3f3083ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gae70530a98d9a14c84fffea7e3f3083ab">glPrintFreeMem</a> ()</td></tr>
<tr class="memdesc:gae70530a98d9a14c84fffea7e3f3083ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the amount of free GPU memory.  <a href="#gae70530a98d9a14c84fffea7e3f3083ab">More...</a><br /></td></tr>
<tr class="separator:gae70530a98d9a14c84fffea7e3f3083ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae1351087d1392a2515441ba778e05259"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#gae1351087d1392a2515441ba778e05259">glDrawLine</a> (float x1, float y1, float x2, float y2, float r, float g, float b, float a=1.0f, float thickness=2.0f)</td></tr>
<tr class="memdesc:gae1351087d1392a2515441ba778e05259"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render a line in screen coordinates with the specified color.  <a href="#gae1351087d1392a2515441ba778e05259">More...</a><br /></td></tr>
<tr class="separator:gae1351087d1392a2515441ba778e05259"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga660ba418bd80bc2d03f4074f96b36b95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga660ba418bd80bc2d03f4074f96b36b95">glDrawOutline</a> (float x, float y, float width, float height, float r, float g, float b, float a=1.0f, float thickness=2.0f)</td></tr>
<tr class="memdesc:ga660ba418bd80bc2d03f4074f96b36b95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render the outline of a rect in screen coordinates with the specified color.  <a href="#ga660ba418bd80bc2d03f4074f96b36b95">More...</a><br /></td></tr>
<tr class="separator:ga660ba418bd80bc2d03f4074f96b36b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b01504c8fc6cf9553989916a471ce23"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OpenGL.html#ga3b01504c8fc6cf9553989916a471ce23">glDrawRect</a> (float x, float y, float width, float height, float r, float g, float b, float a=1.0f)</td></tr>
<tr class="memdesc:ga3b01504c8fc6cf9553989916a471ce23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render a filled rect in screen coordinates with the specified color.  <a href="#ga3b01504c8fc6cf9553989916a471ce23">More...</a><br /></td></tr>
<tr class="separator:ga3b01504c8fc6cf9553989916a471ce23"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>OpenGL textures and display window (X11/GLX). </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gaf3b91dc56dd99fa3abbce89be15fef93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf3b91dc56dd99fa3abbce89be15fef93">&#9670;&nbsp;</a></span>GL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;{ x; <a class="el" href="group__OpenGL.html#ga9c5211ebc6e2eee2b12288cd52c4236e">glCheckError</a>( #x, __FILE__, __LINE__ ); }</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>OpenGL error-checking macro. </p>

</div>
</div>
<a id="ga99a7852633ed1a98e0f1918367355ec0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga99a7852633ed1a98e0f1918367355ec0">&#9670;&nbsp;</a></span>GL_CHECK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_CHECK</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">msg</td><td>)</td>
          <td>&#160;&#160;&#160;{ <a class="el" href="group__OpenGL.html#ga9c5211ebc6e2eee2b12288cd52c4236e">glCheckError</a>(msg, __FILE__, __LINE__); }</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print a message on OpenGL error. </p>

</div>
</div>
<a id="ga83b36ae7f5be085cfb52c24a8def5457"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga83b36ae7f5be085cfb52c24a8def5457">&#9670;&nbsp;</a></span>GL_FROM_CPU</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_FROM_CPU&#160;&#160;&#160;0x3</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy the buffer from CPU to OpenGL. </p>

</div>
</div>
<a id="gaedd033c4196021ff338e5e123d7c193f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaedd033c4196021ff338e5e123d7c193f">&#9670;&nbsp;</a></span>GL_FROM_CUDA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_FROM_CUDA&#160;&#160;&#160;0x4</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy the buffer from CUDA to OpenGL. </p>

</div>
</div>
<a id="gaa8030c5f4c6c173efeb78dbf732bd72c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa8030c5f4c6c173efeb78dbf732bd72c">&#9670;&nbsp;</a></span>GL_INDEX_BUFFER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_INDEX_BUFFER&#160;&#160;&#160;GL_ELEMENT_ARRAY_BUFFER</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Alias for index buffers. </p>

</div>
</div>
<a id="ga35178b75efe97d52bb130b75e1ddd5f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga35178b75efe97d52bb130b75e1ddd5f3">&#9670;&nbsp;</a></span>GL_MAP_CPU</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_MAP_CPU&#160;&#160;&#160;0x1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Map the buffer to CPU address space. </p>

</div>
</div>
<a id="ga3ca90a8f0970ac09dcd34cf9908cbeee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3ca90a8f0970ac09dcd34cf9908cbeee">&#9670;&nbsp;</a></span>GL_MAP_CUDA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_MAP_CUDA&#160;&#160;&#160;0x2</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Map the buffer to CUDA address space. </p>

</div>
</div>
<a id="gafe26dad29b9cb2620e815e5fecea71f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafe26dad29b9cb2620e815e5fecea71f9">&#9670;&nbsp;</a></span>GL_READ_ONLY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_READ_ONLY&#160;&#160;&#160;GL_READ_ONLY_ARB</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Map the buffer with read-only access. </p>

</div>
</div>
<a id="gaa5fd429fd2b79f5936c1421afb205dcd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa5fd429fd2b79f5936c1421afb205dcd">&#9670;&nbsp;</a></span>GL_READ_WRITE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_READ_WRITE&#160;&#160;&#160;GL_READ_WRITE_ARB</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Map the buffer with read/write access. </p>

</div>
</div>
<a id="gae41a95ad5a27c61fb413ec178089a803"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae41a95ad5a27c61fb413ec178089a803">&#9670;&nbsp;</a></span>GL_RGB32F</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_RGB32F&#160;&#160;&#160;GL_RGB32F_ARB</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Alias for GL_RGB32F. </p>

</div>
</div>
<a id="gace8155682f86789a9af13e7026df4615"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gace8155682f86789a9af13e7026df4615">&#9670;&nbsp;</a></span>GL_RGBA32F</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_RGBA32F&#160;&#160;&#160;GL_RGBA32F_ARB</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Alias for GL_RGBA32F. </p>

</div>
</div>
<a id="ga1a91d7f7cdf8b17bbc503ef86e9de6a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1a91d7f7cdf8b17bbc503ef86e9de6a6">&#9670;&nbsp;</a></span>GL_TO_CPU</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_TO_CPU&#160;&#160;&#160;0x5</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy the buffer to CPU from OpenGL. </p>

</div>
</div>
<a id="ga72987ef9b0b241cddbdca6da7d71dadf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga72987ef9b0b241cddbdca6da7d71dadf">&#9670;&nbsp;</a></span>GL_TO_CUDA</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_TO_CUDA&#160;&#160;&#160;0x6</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy the buffer to CUDA from OpenGL. </p>

</div>
</div>
<a id="ga26503b7a548ff678a4dc5aa73de4c784"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga26503b7a548ff678a4dc5aa73de4c784">&#9670;&nbsp;</a></span>GL_VERIFY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_VERIFY</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;{ x; if(<a class="el" href="group__OpenGL.html#ga9c5211ebc6e2eee2b12288cd52c4236e">glCheckError</a>( #x, __FILE__, __LINE__ )) return false; }</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return false on OpenGL error. </p>

</div>
</div>
<a id="gae16e17292445d5654bb49896cdd49bcd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae16e17292445d5654bb49896cdd49bcd">&#9670;&nbsp;</a></span>GL_VERIFYN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_VERIFYN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;{ x; if(<a class="el" href="group__OpenGL.html#ga9c5211ebc6e2eee2b12288cd52c4236e">glCheckError</a>( #x, __FILE__, __LINE__ )) return NULL; }</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>OpenGL NULL on OpenGL error. </p>

</div>
</div>
<a id="ga0bd307cace43e530c0595a5f175bbee5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0bd307cace43e530c0595a5f175bbee5">&#9670;&nbsp;</a></span>GL_VERTEX_BUFFER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_VERTEX_BUFFER&#160;&#160;&#160;GL_ARRAY_BUFFER</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Alias for vertex buffers. </p>

</div>
</div>
<a id="ga0eda41e13107c1422939c363e9596797"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0eda41e13107c1422939c363e9596797">&#9670;&nbsp;</a></span>GL_WRITE_DISCARD</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_WRITE_DISCARD&#160;&#160;&#160;(<a class="el" href="group__OpenGL.html#gaa5fd429fd2b79f5936c1421afb205dcd">GL_READ_WRITE</a> + 0xff)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Map the buffer as write-only and discard previous contents. </p>

</div>
</div>
<a id="gab43997c5949dffce6674a7bb8a3059da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab43997c5949dffce6674a7bb8a3059da">&#9670;&nbsp;</a></span>GL_WRITE_ONLY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GL_WRITE_ONLY&#160;&#160;&#160;GL_WRITE_ONLY_ARB</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Map the buffer with write-only access. </p>

</div>
</div>
<a id="ga8386b89daf8ec3a1805554fd95b80a9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8386b89daf8ec3a1805554fd95b80a9e">&#9670;&nbsp;</a></span>KEY_PRESSED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KEY_PRESSED&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Define for KEY_STATE and KEY_RAW events when key is pressed. </p>
<dl class="section see"><dt>See also</dt><dd>glEventType::KEY_STATE </dd></dl>

</div>
</div>
<a id="gada3a4be515b3527c1691ce080655877f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gada3a4be515b3527c1691ce080655877f">&#9670;&nbsp;</a></span>KEY_RELEASED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define KEY_RELEASED&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Define for KEY_STATE and KEY_RAW events when key is released. </p>
<dl class="section see"><dt>See also</dt><dd>glEventType::KEY_STATE </dd></dl>

</div>
</div>
<a id="gabe9ef8f3c57b226efaf58ab3059bceab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabe9ef8f3c57b226efaf58ab3059bceab">&#9670;&nbsp;</a></span>LOG_GL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LOG_GL&#160;&#160;&#160;&quot;[OpenGL] &quot;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>OpenGL logging prefix. </p>

</div>
</div>
<a id="ga194f107d8c7d12bc83db00d024d5e513"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga194f107d8c7d12bc83db00d024d5e513">&#9670;&nbsp;</a></span>MOUSE_LEFT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MOUSE_LEFT&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Define for the left mouse button number. </p>
<dl class="section see"><dt>See also</dt><dd>glEventType::MOUSE_BUTTON </dd></dl>

</div>
</div>
<a id="ga2f7a686becd5d10c3cf769a6a1da7989"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2f7a686becd5d10c3cf769a6a1da7989">&#9670;&nbsp;</a></span>MOUSE_MIDDLE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MOUSE_MIDDLE&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Define for the middle mouse button (or scroll wheel button) </p>
<dl class="section see"><dt>See also</dt><dd>glEventType::MOUSE_BUTTON </dd></dl>

</div>
</div>
<a id="ga2b6ad02991ecad1673dab379a9f58acd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2b6ad02991ecad1673dab379a9f58acd">&#9670;&nbsp;</a></span>MOUSE_PRESSED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MOUSE_PRESSED&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Define for MOUSE_BUTTON event when button is pressed. </p>
<dl class="section see"><dt>See also</dt><dd>glEventType::MOUSE_BUTTON </dd></dl>

</div>
</div>
<a id="gaa430fb566e84a444e76ca05486dc882d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa430fb566e84a444e76ca05486dc882d">&#9670;&nbsp;</a></span>MOUSE_RELEASED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MOUSE_RELEASED&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Define for MOUSE_BUTTON event when button is released. </p>
<dl class="section see"><dt>See also</dt><dd>glEventType::MOUSE_BUTTON </dd></dl>

</div>
</div>
<a id="ga46f1ed1152bf8bf7680873ad678b3651"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga46f1ed1152bf8bf7680873ad678b3651">&#9670;&nbsp;</a></span>MOUSE_RIGHT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MOUSE_RIGHT&#160;&#160;&#160;3</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Define for the right mouse button number. </p>
<dl class="section see"><dt>See also</dt><dd>glEventType::MOUSE_BUTTON </dd></dl>

</div>
</div>
<a id="ga5a8cfef1d06f7b507fd2ecab7bf75ead"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5a8cfef1d06f7b507fd2ecab7bf75ead">&#9670;&nbsp;</a></span>MOUSE_WHEEL_DOWN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MOUSE_WHEEL_DOWN&#160;&#160;&#160;5</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Define for the mouse wheel scroll down button number. </p>
<dl class="section see"><dt>See also</dt><dd>glEventType::MOUSE_BUTTON </dd></dl>

</div>
</div>
<a id="ga5268fa4c5e397526716bac7b30f639ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5268fa4c5e397526716bac7b30f639ee">&#9670;&nbsp;</a></span>MOUSE_WHEEL_UP</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MOUSE_WHEEL_UP&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Define for the mouse wheel scroll up button number. </p>
<dl class="section see"><dt>See also</dt><dd>glEventType::MOUSE_BUTTON </dd></dl>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gacbcfc0668226b31d1becba25887ff47e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacbcfc0668226b31d1becba25887ff47e">&#9670;&nbsp;</a></span>glEventHandler</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef bool(* glEventHandler) (uint16_t event, int a, int b, void *user)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><a class="el" href="classEvent.html" title="Event object for signalling other threads. ">Event</a> message handler callback for recieving UI messages from a window. </p>
<p>Recieves 4 parameters - the event type, a &amp; b message values (see above), and a user-specified pointer from registration.</p>
<p><a class="el" href="classEvent.html" title="Event object for signalling other threads. ">Event</a> message handlers should return <code>true</code> if the message was handled, or <code>false</code> if the message was skipped or not handled.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="glEvents_8h.html#a0e117949b724f95480214c0ac4545de1" title="Register an event message handler that will be called with events. ">glRegisterEvents</a> </dd>
<dd>
glRemoveEvents </dd></dl>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gadad47fc5cdbc7af41eee1991038749fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadad47fc5cdbc7af41eee1991038749fe">&#9670;&nbsp;</a></span>glEventType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__OpenGL.html#gadad47fc5cdbc7af41eee1991038749fe">glEventType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>User interface event message types. </p>
<p>Each event message consists of the event type, a &amp; b message values, and a user-specified pointer. The event types and message values are desribed below for each type of message.</p>
<p>These event messages are dispatched at runtime to glEventHandler callbacks that have been registered via <a class="el" href="glEvents_8h.html#a0e117949b724f95480214c0ac4545de1" title="Register an event message handler that will be called with events. ">glRegisterEvents()</a></p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__OpenGL.html#gacbcfc0668226b31d1becba25887ff47e" title="Event message handler callback for recieving UI messages from a window. ">glEventHandler</a> </dd>
<dd>
<a class="el" href="glEvents_8h.html#a0e117949b724f95480214c0ac4545de1" title="Register an event message handler that will be called with events. ">glRegisterEvents</a> </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749fea7513d383f97428a41f8b44594874d469"></a>MOUSE_MOVE&#160;</td><td class="fielddoc"><p>Message when the mouse has moved (relative coordinates) </p>
<p>a = x position, relative to window top-left b = y position, relative to window top-left</p>
<dl class="section note"><dt>Note</dt><dd>the mouse must be within the window to recieve this message, and the coordinates will be provided in coordinates relative to the top-left of the window </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749fea8de816dffb2b2835bd493047322de4d8"></a>MOUSE_ABSOLUTE&#160;</td><td class="fielddoc"><p>Message when the mouse has moved (absolute coordinates) </p>
<p>a = x position, in absolute screen coordinates b = y position, in absolute screen coordinates</p>
<dl class="section note"><dt>Note</dt><dd>the mouse must be within the window to recieve this message, and the coordinates will be provided in absolute screen coordinates regardless of window. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749fead81c1a06c50141d5a469d4513479c24c"></a>MOUSE_BUTTON&#160;</td><td class="fielddoc"><p>Message when a mouse button has been pressed/released. </p>
<p>a = button ID b = MOUSE_PRESSED or MOUSE_RELEASED</p>
<p>Here is the mapping of the mouse buttons to their ID: </p><pre class="fragment"> - 1 MOUSE_LEFT       (left button)
</pre><ul>
<li>2 MOUSE_MIDDLE (middle button / scroll wheel button)</li>
<li>3 MOUSE_RIGHT (right button)</li>
<li>4 MOUSE_WHEEL_UP (scroll wheel up)</li>
<li>5 MOUSE_WHEEL_DOWN (scroll wheel down) </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749fea387b8a2503db0238598215649168bed3"></a>MOUSE_DRAG&#160;</td><td class="fielddoc"><p>Message when the left mouse button has been dragged. </p>
<p>a = x delta (change in position) b = y delta (change in position)</p>
<dl class="section note"><dt>Note</dt><dd>the mouse must be within the window to recieve this message, and the coordinates will be provided as a delta from the change in position from last message </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749fea477b36ffc584a4458ea59eb24c7ea4cb"></a>MOUSE_WHEEL&#160;</td><td class="fielddoc"><p>Message when the mouse wheel has been scrolled a = -1 for scrolled up, or +1 for scrolled down. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749feaa7990d29ca8911d1d65ebe318e3bfdad"></a>KEY_STATE&#160;</td><td class="fielddoc"><p>Message when a key state has changed (raw, without modifiers applied) </p>
<p>a = raw key symbol (without modifier translation) b = KEY_PRESSED or KEY_RELEASED</p>
<p>These raw symbols are left unmodified, so they won't be changed by keys like Shift, CapsLock, NumLock, ect. Letters will always be reported as lowercase. For example if you press Shift + a, it will still be reported as XK_a (a)</p>
<dl class="section see"><dt>See also</dt><dd><code>/usr/include/X11/keysymdef.h</code> for the <code>XK_ KeySym</code> symbol definitions. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749feac72a03e9a29e852b03999c7a8a2076b5"></a>KEY_MODIFIED&#160;</td><td class="fielddoc"><p>Message when a key has been pressed or released (with modifiers applied) </p>
<p>a = key symbol (with modifier translations) b = KEY_PRESSED or KEY_RELEASED</p>
<p>These symbols have modifiers applied (Shift, CapsLock, NumLock, ect), so for example if you press Shift + a, it will be reported as XK_A (A)</p>
<dl class="section see"><dt>See also</dt><dd><code>/usr/include/X11/keysymdef.h</code> for the <code>XK_ KeySym</code> symbol definitions. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749fea8f72d21c8a5a305ff69f576d6a799c08"></a>KEY_CHAR&#160;</td><td class="fielddoc"><p>Message when a keyboard ASCII character (0-255) was entered. </p>
<p>a = ASCII character (0-9, a-Z, !-?, ect.)</p>
<p>These will have modifiers applied (Shift, CapsLock, NumLock, ect), so for example if you press Shift + a, it will be reported as 'A'. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749fea596bff109a8d5a26abf4e8d776903919"></a>WIDGET_CREATED&#160;</td><td class="fielddoc"><p>Message indicating that a widget has been created (e.g. </p>
<p>from dragging)</p>
<p>a = widget index into <a class="el" href="classglDisplay.html#ab03fa54f8098a9db65bbdc1f00622ab0" title="Retrieve a widget. ">glDisplay::GetWidget()</a> or <a class="el" href="classglWidget.html#a8099ad0207c2450231ab8b0ad4a5bd53" title="Get the index of the widget in the window (or -1 if none) ">glWidget::GetIndex()</a></p>
<dl class="section note"><dt>Note</dt><dd>this message is sent by both <a class="el" href="classglWidget.html" title="OpenGL graphics widget for rendering moveable/resizable shapes. ">glWidget</a> and <a class="el" href="classglDisplay.html" title="OpenGL display window and image/video renderer with CUDA interoperability. ">glDisplay</a>. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classglWidget.html#abd9f8f577749f268f8ae973a84333520" title="Register an event message handler the widget will send events to. ">glWidget::AddEventHandler()</a> to subscribe to widget events. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749fea1a95cd0d3e7b79901949c2aa3397c955"></a>WIDGET_SELECTED&#160;</td><td class="fielddoc"><p>Message indicating that a widget has been selected (e.g. </p>
<p>from dragging)</p>
<p>a = widget index into <a class="el" href="classglDisplay.html#ab03fa54f8098a9db65bbdc1f00622ab0" title="Retrieve a widget. ">glDisplay::GetWidget()</a> or <a class="el" href="classglWidget.html#a8099ad0207c2450231ab8b0ad4a5bd53" title="Get the index of the widget in the window (or -1 if none) ">glWidget::GetIndex()</a></p>
<dl class="section note"><dt>Note</dt><dd>this message is sent by both <a class="el" href="classglWidget.html" title="OpenGL graphics widget for rendering moveable/resizable shapes. ">glWidget</a> and <a class="el" href="classglDisplay.html" title="OpenGL display window and image/video renderer with CUDA interoperability. ">glDisplay</a>. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classglWidget.html#abd9f8f577749f268f8ae973a84333520" title="Register an event message handler the widget will send events to. ">glWidget::AddEventHandler()</a> to subscribe to widget events. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749fea0ec18df1c78ce7428c5a828b29ec8c83"></a>WIDGET_MOVED&#160;</td><td class="fielddoc"><p>Message from a widget indicating that it's been moved by the user. </p>
<p>This event is only sent if the user moved the widget in the GUI (i.e. if <a class="el" href="classglWidget.html#a6016740b9bfcf7c849dddf7f0fff98fc" title="Is the widget moveable/draggable by the user? ">glWidget::IsMoveable()</a> was set), and not if the widget was moved programatically via <a class="el" href="classglWidget.html#a3ef9c4e97e7998b6e150e7edfcce140c" title="Move the widget&#39;s position by the specified offset. ">glWidget::Move()</a>, <a class="el" href="classglWidget.html#abc85ba15d783f8693783321d474b61b2" title="Set position of widget in global window coordinates. ">glWidget::SetPosition()</a>, <a class="el" href="classglWidget.html#a3670b74a4763abbcd4d21500f4ac626c" title="Set the widget&#39;s X coordinate. ">glWidget::SetX()</a>, <a class="el" href="classglWidget.html#a9d55a8dcab6721a154b2e4f5ed53d586" title="Set the widget&#39;s Y coordinate. ">glWidget::SetY()</a>, ect.</p>
<p>a = new X coordinate b = new Y coordinate</p>
<dl class="section note"><dt>Note</dt><dd>this message is only sent by <a class="el" href="classglWidget.html" title="OpenGL graphics widget for rendering moveable/resizable shapes. ">glWidget</a> (not <a class="el" href="classglDisplay.html" title="OpenGL display window and image/video renderer with CUDA interoperability. ">glDisplay</a>). </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classglWidget.html#abd9f8f577749f268f8ae973a84333520" title="Register an event message handler the widget will send events to. ">glWidget::AddEventHandler()</a> to subscribe to widget events. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749fea833cc0c2132855c06b26ee0508f22116"></a>WIDGET_RESIZED&#160;</td><td class="fielddoc"><p>Message from a widget indicating that it's been resized. </p>
<p>This event is only sent if the user resized the widget in the GUI (i.e. if glWidget::IsResizable() was set), and not if the widget was resized programatically via <a class="el" href="classglWidget.html#ae5c7bf0eb812a4f935e0ba8738828c97" title="Set the widget&#39;s size. ">glWidget::SetSize()</a>, <a class="el" href="classglWidget.html#af55b147cc0621a07b85490cb6d7c1824" title="Set the widget&#39;s width. ">glWidget::SetWidth()</a>, or <a class="el" href="classglWidget.html#ac835bf8ff0f03d34634aaff9b2e4e80e" title="Set the widget&#39;s height. ">glWidget::SetHeight()</a>.</p>
<p>a = new width b = new height</p>
<dl class="section note"><dt>Note</dt><dd>this message is only sent by <a class="el" href="classglWidget.html" title="OpenGL graphics widget for rendering moveable/resizable shapes. ">glWidget</a> (not <a class="el" href="classglDisplay.html" title="OpenGL display window and image/video renderer with CUDA interoperability. ">glDisplay</a>). </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classglWidget.html#abd9f8f577749f268f8ae973a84333520" title="Register an event message handler the widget will send events to. ">glWidget::AddEventHandler()</a> to subscribe to widget events. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749feafb6f46ac831d8060d921687aba839a82"></a>WINDOW_RESIZED&#160;</td><td class="fielddoc"><p>Message indicating that the window has been resized. </p>
<p>a = new width (in pixels) b = new height (in pixels) </p>
</td></tr>
<tr><td class="fieldname"><a id="ggadad47fc5cdbc7af41eee1991038749feaa2199f69612be7b5e44d25fab5dab570"></a>WINDOW_CLOSED&#160;</td><td class="fielddoc"><p>Message indicating that the window is closing. </p>
<p>(no parameters) </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaa1e51833a1b003db2359ea965e501806"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa1e51833a1b003db2359ea965e501806">&#9670;&nbsp;</a></span>glCheckError() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool glCheckError </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>line</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>OpenGL error-checking messsage function. </p>

</div>
</div>
<a id="ga9c5211ebc6e2eee2b12288cd52c4236e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9c5211ebc6e2eee2b12288cd52c4236e">&#9670;&nbsp;</a></span>glCheckError() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool glCheckError </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>msg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>OpenGL error check + logging. </p>

</div>
</div>
<a id="gae1351087d1392a2515441ba778e05259"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae1351087d1392a2515441ba778e05259">&#9670;&nbsp;</a></span>glDrawLine()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void glDrawLine </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>a</em> = <code>1.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>thickness</em> = <code>2.0f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Render a line in screen coordinates with the specified color. </p>
<dl class="section note"><dt>Note</dt><dd>the RGBA color values are expected to be in the range of [0-1] </dd></dl>

</div>
</div>
<a id="ga660ba418bd80bc2d03f4074f96b36b95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga660ba418bd80bc2d03f4074f96b36b95">&#9670;&nbsp;</a></span>glDrawOutline()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void glDrawOutline </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>a</em> = <code>1.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>thickness</em> = <code>2.0f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Render the outline of a rect in screen coordinates with the specified color. </p>
<dl class="section note"><dt>Note</dt><dd>the RGBA color values are expected to be in the range of [0-1] </dd></dl>

</div>
</div>
<a id="ga3b01504c8fc6cf9553989916a471ce23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3b01504c8fc6cf9553989916a471ce23">&#9670;&nbsp;</a></span>glDrawRect()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void glDrawRect </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>a</em> = <code>1.0f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Render a filled rect in screen coordinates with the specified color. </p>
<dl class="section note"><dt>Note</dt><dd>the RGBA color values are expected to be in the range of [0-1] </dd></dl>

</div>
</div>
<a id="ga6af68c26b9f5254ee676de8b6f332ad4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6af68c26b9f5254ee676de8b6f332ad4">&#9670;&nbsp;</a></span>glGetDisplay()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classglDisplay.html">glDisplay</a>* glGetDisplay </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>display</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve a display window object. </p>

</div>
</div>
<a id="ga80a5aa43c317714fe5bb41e1db6eb4c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga80a5aa43c317714fe5bb41e1db6eb4c4">&#9670;&nbsp;</a></span>glGetNumDisplays()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t glGetNumDisplays </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the number of created <a class="el" href="classglDisplay.html" title="OpenGL display window and image/video renderer with CUDA interoperability. ">glDisplay</a> windows. </p>

</div>
</div>
<a id="gae70530a98d9a14c84fffea7e3f3083ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae70530a98d9a14c84fffea7e3f3083ab">&#9670;&nbsp;</a></span>glPrintFreeMem()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void glPrintFreeMem </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Print the amount of free GPU memory. </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Tue Jul 14 2020 21:59:34 for Jetson Inference by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
